package com.leyou.common.advice;

import com.leyou.common.exceptions.LyException;
import com.leyou.common.vo.ExceptionResult;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

//@ControllerAdvice：异常集中处理，更好的使业务逻辑与异常处理剥离开
@ControllerAdvice
public class BaseExceptionAdvice {

    //@ExceptionHandler:统一处理某一类异常，从而能够减少代码重复率和复杂度
    @ExceptionHandler(LyException.class)
    public ResponseEntity<ExceptionResult> handleException(LyException e){
        // 我们暂定返回状态码为400， 然后从异常中获取友好提示信息
        return ResponseEntity.status(e.getStatus()).body(new ExceptionResult(e));
    }
}
 